package cn.getech.data.development.service;

import cn.getech.data.development.entity.DataSyncInfo;
import cn.getech.data.development.model.dto.*;
import cn.getech.data.intelligence.common.utils.PageUtils;
import cn.getech.data.intelligence.common.utils.R;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Set;

/**
 * @Author luoxi
 * @create 2020/11/16 14:51
 */
public interface DataSyncInfoService extends IService<DataSyncInfo> {
    void add(DataSyncInfoAddDTO dataSyncInfoAddDTO);

    IPage<DataSyncInfo> listPage(DataSyncQueryDTO dataSyncQueryDTO);

    DataSyncReturnDTO get(Integer id);

    void del(List<Integer> ids);

    void edit(DataSyncInfoAddDTO dataSyncInfoAddDTO);

    List<DataSourceLevelDTO> getByDataSource(Integer dataSourceType);

    PageUtils<DataSyncMetaDataReturnDTO>  getByDataBase(DataBaseDTO dataBaseDTO);

    R syncDataOrTable(Integer id, String syncQueue);

    DataSyncTableStructDTO getLogInfo(Integer id);

    Set<ApplyUserListDTO> getCreateUserList();

    PageUtils getDataSourceByType(DataSyncDataSourceDTO dataSyncDataSourceDTO);
}
